【发布时间】:2010-07-30 16:07:17
【问题描述】:
我有一个全局变量 *char。我的主要函数标题为int main(int argc, char* argv[argc]){...}。这两行代码必须保持原样。我的主函数的第一个参数是*char 类型的数字,我使用atoi(...); 将其转换为字符。我基本上是将 ASCII 值更改为相应的字符。现在我想将我拥有的这个局部变量字符存储到作为 char 指针的全局变量中。我知道问题与内存分配有关,但我不知道该怎么做。
我的代码:
char* delim;
int main(int argc, char* argv[argc])
{
char delimCharacter;
if (isdigit(*(argv[3])) == 0) delim = argv[3]; //you can pass in a character or its ascii value
else { //if the argument is a number, then the ascii value is taken
delimCharacter = atoi((argv[3]));
printf("%s\t,%c,\n", argv[3], delimCharacter);
//sprintf( delim, "%c", delimCharacter ); // a failed attempt to do this
*delim = delimCharacter;
//strncpy(delim, delimCharacter, 1); // another failed attempt to do this
}
//printf("%s\n",delim);
这会产生一个段错误。
【问题讨论】:
-
为什么不:int main(int argc, char** argv)
标签: pointers ascii segmentation-fault character allocation