【发布时间】:2015-12-28 23:14:58
【问题描述】:
我是c 的初学者。我有一个函数可以返回 c 字符串的长度和数组。但是,我很难弄清楚如何将两者都作为int 发送。我曾尝试使用void 指针,但编译器会生成一个错误,指出返回指针(预期为int)。此外,我尝试实现 aToI 方法,但没有得到所需的结果。我意识到我只能返回 c 字符串数组并使用 strlen() 函数获取其长度。但是,我们如何将 c 字符串数组作为整数发送。请举例说明。谢谢
这是我的代码的样子
int read_header( char *fileName , char **headerRow )
{
int length= header_columns(fileName);
headerRow[0]=(char*)malloc(length);
FILE *fp;
char c;
char **header;
char *savedheader;
char *returnPointer;
int counter=0;
header[0]=(char*)malloc(Max_Line_Length);
char *pointer=header[0];
while((c=getc(fp))!='\n')
{
if(c!='\n')
{
if(c==',')
{
length++;
}
*pointer++=c;
}
else
{
length++;
*pointer='\0';
}
}
pointer=strtok_r(pointer,",",&savedheader);
while(pointer!=NULL)
{
headerRow[counter]=pointer;
pointer=strtok_r(pointer,",",&savedheader);
counter++;
}
returnPointer= headerRow[0];
return &returnPointer;
}
我正在阅读以逗号分隔的单词行作为字符。然后我使用 strtok_r() 方法将这些字符解析为 c 字符串。现在,我需要将 headerRow 数组作为整数返回给另一个函数。
【问题讨论】:
-
返回地址也是报错。
-
我认为,您不应该将 c 字符串数组作为整数发送。将它们的数组作为多个整数发送也可能不好。你应该有更好的方法来传递你的数据。
-
我不明白你的问题,你想生成一个整数数组吗?
-
您需要发布给您带来麻烦的代码。不看代码就无法回答问题。
-
真正有帮助的一件事是,如果您发布您尝试过的内容。 void 指针没有什么神奇之处,但在使用它们时必须遵循一些规则。如果您发布您尝试过的内容,我们可能会提供帮助。请尽快阅读About 页面并访问描述How to Ask a Question 的链接。提供必要的详细信息,包括您的代码和相关错误(如果有),将允许这里的每个人帮助您解决问题。
标签: c c arrays pointers return c-strings