char activeip[11]="0123456789";
char buffer[1001];
int MAX_SIZE = 1000;
printf("MAX_SIZE %d\n", MAX_SIZE);
strncpy(buffer, "string here....... ",MAX_SIZE+1);
printf("MAX_SIZE %d\n", MAX_SIZE);
strncpy(&buffer[strlen(buffer)],activeip,MAX_SIZE+1 );
printf("MAX_SIZE %d\n", MAX_SIZE);
strncpy(&buffer[strlen(buffer)],"Long string here.....................................", MAX_SIZE+1);
printf("MAX_SIZE %d\n", MAX_SIZE);
puts(buffer);
как видите, я инициализировал MAX_SIZE равным 1000. когда MAX_SIZE не больше буфера, MAX_SIZE становится равным нулю. вывод кода выглядит следующим образом:
MAX_SIZE 1000
MAX_SIZE 0
MAX_SIZE 0
string here....... 0123456789L
Process finished with exit code 0
как может функция (strncpy изменить мою локальную переменную (MAX_SIZE)? мой компилятор minGW работает на CLion, спасибо за ваш ответ