【发布时间】:2012-05-02 15:12:23
【问题描述】:
当我尝试编译以下 C 代码时,我得到一个总线错误。 我猜这与我调用 memcpy 的方式有关,但我无法弄清楚。 任何帮助将不胜感激!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *p = (char*)malloc(sizeof(char)*11);
// Assign some value to p
p = "hello";
char *name = (char*)malloc(sizeof(char)*11);
// Assign some value to name
name = "Bye";
memcpy (p,name,sizeof(char)*10); // Problem begins here
return 0;
}
【问题讨论】:
-
其他备注:Don't cast the return value of malloc。当
strncpy和类似的函数存在于此目的时,为什么要使用memcpy来复制字符串?
标签: c bus memory-segmentation