我想寫一個函數realloc 3數組,它是在使用malloc的主體中創建的,但每次我嘗試運行該程序時,都會收到一個錯誤消息並且程序停止工作。Realloc一個字符串數組
在我試圖進行調試時,我嘗試在「realloc」後面打印數組,並且它看起來像realloc已成功完成,但在我掃描到這些新記錄後,當我要打印時,出現錯誤。
更正1:按照建議更正了scanf行中的錯誤。一旦輸入第一條新記錄,程序就會發生錯誤
任何輸入值得讚賞!
void addRecord(char** firstName,char** lastName, float* score, int * recordSize)
{
int add,i;
printf("How many records do you want to add? ");
scanf("%d", &add);
firstName = realloc(firstName, (*recordSize+add)*sizeof(char*));
for (i=*recordSize; i<(*recordSize)+add; i++)
firstName[i]= malloc(STRSIZE*sizeof(char));
lastName = realloc(lastName, (*recordSize+add)*sizeof(char*));
for (i=*recordSize; i<(*recordSize)+add; i++)
lastName[i]= malloc(STRSIZE*sizeof(char));
score = realloc(score, (*recordSize+add)*sizeof(float));
printf("Please enter the record to be added: \n");
printf("FirstName LastName Score\n");
for (i=*recordSize; i<*recordSize+add; i++)
scanf("%s %s %f", firstName[i], lastName[i], &score[i]);
*recordSize +=add;
}
scanf()的'%s'格式規範需要'char *',但你提供'char **'。 'firstName [i]'已經是'char *'了,所以你不需要使用'&'運算符。 –
你應該總是發佈[mcve]。 –