struct film * next = current->next;
Так работает. { 'h', 'e', 'l', 'l', 'o', '\0' }
, и следовательно ничто не мешает изменить данный массив,static const char __str[] = { 'h', 'e', 'l', 'l', 'o', '\0' }
, и следовательно в данном случае массив будет помещен в read-only память, и изменить уже не получится его.#include <stdio.h>
#include <conio.h>
// #include <stdlib.h>
#define LIM 30
char s_gets(char * str, size_t n);
int main(int argc, char * argv[])
{
char number[LIM];
char * end;
long value;
puts("Input number or empty string for exit:");
while (s_gets(number, LIM) && number[0] != '\0')
{
value = strtol(number, &end, 10); // !!!!!!!!!!!!!!!!!!!!!
printf("Decimal output: %ld finished on %s (%d)\n", value, end, *end);
value = strtol(number, &end, 16); // !!!!!!!!!!!!!!!!!!!!!
printf("Hexadecimal output: %ld finished on %s (%d)\n", value, end, *end);
puts("Next number:");
}
puts("The programm is completed");
getch();
return 0;
}
char s_gets(char * str, size_t n)
{
char * return_value = fgets(str, n, stdin);
int i = 0;
if (return_value)
{
while (str[i] != '\n' && str[i] != '\0')
i++;
if (str[i] == '\n')
str[i] = '\0';
else
while (getchar() != '\n')
continue;
}
return return_value;
}
А как тогда функция будет вызываться без ее определения? Инструкции функции каким то образом должны же в итоге оказаться в моей программе...либо я вас не правильно понял.