Я передаю строку в структуры, я делаю это так внутри циклнеправильно копирование в структуры
printf("copy = %s\n",copy_p);
str[i].string=(char*)malloc(strlen(copy_p)+1 * sizeof(char));
strcpy(str[i].string,copy_p);
printf("skop = %s\n" , str[i].string);
Так что если copy_p
переменная «Программа перестала работать» это то, что происходит
printf("copy = %s\n",copy_p); // copy = Program has stopped working
printf("skop = %s\n" , str[i].string); // skop = Program has stopped working
Но если я назову это printf("%s\n",str[0].string)
, он выдает Program has stopped work!
, почему это так? но оно не нравится все это время он работает для большинства входов
Что type is 'copy_p' и какой он размер? –
Если 'copy_p' является указателем, верните длину строки с помощью' strlen'. – Downvoter
Я предлагаю вам использовать временную: «int tempSize = (sizeof (copy_p) +1;», а затем разбить строку после и проверить tempSize. –