以下code在 ideone 中运行良好,但在 codeblocks IDE 中出现运行时错误。是我的 IDE 坏了还是有任何特定于编程语言的问题。
#include<stdio.h>
int main(){
int *pointer;
int num = 45;
*pointer = num;
printf("pointer points to value %d", *pointer);
return 0;
}
最佳答案
替换这个
*pointer = num;
由
pointer = #
在给它赋值之前,你的指针应该指向一个内存空间。
当您以这种方式定义指针时:
int *pointer;
这意味着你已经定义了指针,但指针还没有指向内存空间。如果您直接使用指针而不将其指向内存空间(就像您在代码中所做的那样),那么您将得到未定义的行为。
可以通过以下方式之一将指针指向内存空间:
1) 指向静态内存
int num;
int *pointer = #
num 是一个定义为静态的 int。所以指针可以指向num内存
2) 指向动态内存
int *pointer = malloc(sizeof(int));
指针可以指向动态内存。可以使用malloc()
分配动态内存,当内存变得无用时,我们可以使用free(pointer)
关于c - 将 int 放入 int 指针中会在 C 中产生运行时错误。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14687145/