我试图创建人物的缓冲工作,如下所示:用的memcpy为缓冲区
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct gvk{
char a ;
char b ;
char c ;
};
int main(){
char *buf;
struct gvk k = {'A','B','C'};
memcpy(buf, &k , 3*sizeof(char));
printf("values in buf is %s\n",buf);
}
但我的程序退出说 在哪里我做错了“非零状态退出”?
'char buf [4];'...'sprintf(buf,“%c%c%c”,ka,kb,kc);' – BLUEPIXY
您需要为'buf'分配内存并终止如果你想使用'%s'打印,则用'\ 0'。此外,假设'sizeof(gvk)'是3个字节并不是一个好主意。 –
了解更多关于[未定义的行为](https://en.wikipedia.org/wiki/Undefined_behavior)并努力工作以避免它。使用[GCC](http://gcc.gnu.org/)...)编译所有警告和调试信息('gcc -Wall -Wextra -g')。学会使用调试器('gdb')和[valgrind](http://valgrind.org/) –