gpt4 book ai didi

c - 警告 : initialization makes pointer from integer without a cast(integer pointers)

转载 作者:太空宇宙 更新时间:2023-11-04 00:29:11 24 4
gpt4 key购买 nike

我有这段代码尝试用整数来尝试指针,并且在编译它时有一个警告,初始化使指针来自整数而不进行强制转换。另外,编译后.exe文件似乎无法正常运行。请帮忙!

#include <stdio.h>
#include <stdlib.h>

int
main(int argc, char* argv[]) {
int num1=10, *num2=1;
printf("num1=%d \t num2=%d \n", num1, *num2);
*num2 = num1;
printf("num1=%d \t num2=%d \n", num1, *num2);

return 0;
}

Error message

最佳答案

您以实现定义的方式将整数 1 转换为指针,转换后的指针成为有效指针的可能性太小。因此,取消引用指针并向其读取或写入一些值很可能会导致段错误。

创建一个让指针指向的对象,并让指针指向该对象。只有在那之后,才能使用指针读取或写入值到它指向的位置。

#include <stdio.h>
#include <stdlib.h>

int
main(int argc, char* argv[]) {
int obj = 0; /* do initialize before using the value */
int num1=10, *num2=&obj;
printf("num1=%d \t num2=%d \n", num1, *num2);
*num2 = num1;
printf("num1=%d \t num2=%d \n", num1, *num2);

return 0;
}

关于c - 警告 : initialization makes pointer from integer without a cast(integer pointers),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36102953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com