相关疑难解决方法(0)

我是否施放了malloc的结果?

这个问题,有人建议意见,我应该不会投的结果malloc,即

int *sieve = malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)

而不是:

int *sieve = (int *) malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)

为什么会这样呢?

c malloc casting

2318
推荐指数
27
解决办法
22万
查看次数

为什么这段代码会在64位架构上发生段错误但在32位上运行良好?

我遇到了以下C拼图:

问:为什么以下程序会在IA-64上发生段错误,但在IA-32上运行良好?

  int main()
  {
      int* p;
      p = (int*)malloc(sizeof(int));
      *p = 10;
      return 0;
  }
Run Code Online (Sandbox Code Playgroud)

我知道int64位机器的大小int可能与指针的大小不同(可能是32位,指针可能是64位).但我不确定这与上述计划有什么关系.有任何想法吗?

c pointers segmentation-fault

108
推荐指数
3
解决办法
1万
查看次数

标签 统计

c ×2

casting ×1

malloc ×1

pointers ×1

segmentation-fault ×1