b********f 发帖数: 3 | 1 GCC编译无错,运行提示
"SEGMENTATION FAULT(CORE DUMPED)"
#include
int main()
{
char *buf;
unsigned int vel_h = 0x01;
unsigned int vel_l = 0xB159;
unsigned int temp = 0x01FD;
unsigned int pres = 0x004C;
unsigned int cal1 = 0x3340;
unsigned int cal2 = 0x1030;
unsigned int range = 0x01;
sprintf(buf,"%02X,%04X,%04X,%04X,%04X,%04X,%02X",vel_h,vel_l,temp,pres,
cal1,cal2,range);
printf("%s\r\n",buf);
return 0;
} |
a**e 发帖数: 5794 | 2 buf指针没有分配内存。
【在 b********f 的大作中提到】 : GCC编译无错,运行提示 : "SEGMENTATION FAULT(CORE DUMPED)" : #include : int main() : { : char *buf; : unsigned int vel_h = 0x01; : unsigned int vel_l = 0xB159; : unsigned int temp = 0x01FD; : unsigned int pres = 0x004C;
|
b********f 发帖数: 3 | 3 Thanks, how do you fix it?
【在 a**e 的大作中提到】 : buf指针没有分配内存。
|
a**e 发帖数: 5794 | 4 char *buf = malloc(20);
不知道你要用多大,20也许够了。
【在 b********f 的大作中提到】 : Thanks, how do you fix it?
|
a****l 发帖数: 8211 | 5 did you just type 20 randomly, or actually counted how many bytes will be
needed in the original question?
【在 a**e 的大作中提到】 : char *buf = malloc(20); : 不知道你要用多大,20也许够了。
|
b********f 发帖数: 3 | 6 Thanks a lot for the answer.
Do you know how to set up core dump files under Cygwin? |
a**e 发帖数: 5794 | 7 我数了是12个,但是大点保险,谁知道他干什么用的。
【在 a****l 的大作中提到】 : did you just type 20 randomly, or actually counted how many bytes will be : needed in the original question?
|
a****l 发帖数: 8211 | 8 would you please explain why it is 12, or why 20 would be enough?
【在 a**e 的大作中提到】 : 我数了是12个,但是大点保险,谁知道他干什么用的。
|
a**e 发帖数: 5794 | 9 哦,我数错了,是24个。每个byte打印成两个字符。
【在 a****l 的大作中提到】 : would you please explain why it is 12, or why 20 would be enough?
|
a****l 发帖数: 8211 | 10 谢谢指点.请问标点符号要不要算呢?
【在 a**e 的大作中提到】 : 哦,我数错了,是24个。每个byte打印成两个字符。
|
a**e 发帖数: 5794 | 11 加上6个逗号和末尾的NULL,是31个。
【在 a****l 的大作中提到】 : 谢谢指点.请问标点符号要不要算呢?
|
g**w 发帖数: 969 | 12 通常写成这样:
#define MAX_LEN 256
char buf[MAX_LEN]; |