我有一個動態分配的指針數組,每個指針指向文件中的一行文本。我需要提取文件的第四列(文件中的值用逗號分隔),以便我可以稍後通過該列對文件進行排序。我已經能夠提取第四列文本,但是我無法返回它在我的主函數中使用,並且當我返回它時,它是空白的,可能是什麼問題?返回一個字符串文字?
getStart發現逗號所需的列
int getStart(char** addresses, int index)
{
int i = 0;
int count = 0;
for(i=0;i < strlen(addresses[index]); i++)
{
if(addresses[index][i] == ',')
count += 1;
if(count == 3)
return i+1;
}
}
getStop找到逗號權所需的列
int getStop(char** addresses, int index)
{
int i = 0;
int count = 0;
for(i=0;i < strlen(addresses[index]); i++)
{
if(addresses[index][i] == ',')
count += 1;
if(count == 4)
return i;
}
}
getSubject年底前前右通吃的人物在起始和終止,並把它們放到一個數組中(這是我需要返回到主)
char* getSubject(char** addresses, int index)
{
int i = 0;
int start;
int stop;
char* final;
char subject[10];
start = getStart(addresses, index);
stop = getStop(addresses, index);
for(start; start<stop; start++)
{
subject[i] = addresses[index][start];
i++;
}
final = subject;
printf("%s %s\n", final, subject);
return final;
}
,我知道該功能的工作方式是,
printf("%s %s\n", final, subject);
打印出正確的價值觀,但是當我把它的主要如下:
char* test;
test = getSubject(addresses, 43);
printf("%s\n", test);
測試打印空白值。爲什麼是這樣?
做完那招沉默編譯器將是一個非常不好的習慣住在一起,覺得它的調用必須釋放它... –