小编syl*_*syl的帖子

Sprintf分段错误

numCheck是1-1000之间的数字.只有当我在charcheck中收集sprintf的结果时,此代码才会给我一个段错误.如果我只是在不使用结果的情况下使用sprintf,我就不会遇到seg错误.这里发生了什么事?

char * numString;
int charcheck = sprintf(numString, "%d", numCheck);
Run Code Online (Sandbox Code Playgroud)

c printf segmentation-fault

11
推荐指数
1
解决办法
2万
查看次数

访问数组的最后一个元素

我正在尝试使用C++访问数组中的最后一个元素(更具体地说,我正在尝试将整数转换为字符数组,然后访问最后一个数字).这是我到目前为止所提出的:

int number_to_convert = 1234;
char * num_string;
sprintf(num_string, "%d", number_to_convert);
printf("Number: %d Sizeof num_string: %d Sizeof *num_string: %d Sizeof num_string[0]: %d\n", number_to_convert, sizeof(num_string), sizeof(*num_string), sizeof(num_string[0]));
Run Code Online (Sandbox Code Playgroud)

使用此信息,我尝试了几种不同的组合来访问最后一个元素:

num_string[sizeof(number_to_convert)/sizeof(*number_to_convert)-1];
num_string[sizeof(number_to_convert)-sizeof(char)]
Run Code Online (Sandbox Code Playgroud)

也许有更好的方法来获得最后一位数,但这是我能找到的最佳方式.我想要最后一个字符(不是空字符).

c++ arrays element

1
推荐指数
1
解决办法
4730
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

element ×1

printf ×1

segmentation-fault ×1