发布网友 发布时间:3小时前
共0个回答
一个指针数组,在定义时就给他分配了内存,当然可以直接给指针赋值了,但是取值(*p[5]),仍然是不行的。。。总而言之,指针只有指向了实际的内存才能被取值(*p或*p[6])。。。纯手打,望采纳。。。
C语言指针变量为什么要赋初值?因为指针不初始赋值的话会随机分配一个内存地址,如果后面的代码直接使用的话会出错,C编译器为了不让这种情况发生所以去检测有没有不初始化的指针,其实就是编译器搞得鬼。
对指针赋空与没对指针赋值首先,必须强调的是这种写法十分不安全!再者,就你的问题我认为应该这样理解,int * p;只是定义了一个指针,而没有明确指针指向的具体存储单元,一般而言,当*p=5;被执行时,指向的存储单元是随机的,有可能是系统的保留空间,也有可能恰巧指向没有存储数据的用户空白空间,所以在是否报运行时错误是随机...
C程序定义一指针变量,直接令它赋值为NULL,不对它用malloc申请内存可以...用不用malloc,要看指针变量的具体用途。简单的说如果要给其一个单独的新值,是必须用malloc分配内存的。如果要给这个指针变量一个已经存在的值,则不需要。简单的说赋值是拿别人的东西自己来用,而不需要管这个东西怎么来的。当然这还要考虑你的赋值操作是否合乎逻辑,合乎语法,是否有意义。而内存分配完...
C语言指针的赋值问题int*p;p为指针,地址是未知的,如果直接赋值 p=a;这样编译可以通过,但是会产生警告,p的地址是随机分配的,这样对未知的地址赋值很危险,可能会覆盖掉某些重要数据,所以避免这种危险,在定义指针时注意初始化,也就是赋值。可以int*p=&a;或者int*p;p=&a;然后再对p进行操作 有错。注意大小写,...
空指针可以赋值吗?给空指针指向的地址赋值是错的,程序会崩溃。如int *q=NULL; *q=*(p+5)会死机。如果你给q指向的地址赋值都是错的,如*q=xxx;但是q本身是个变量,你给q本身赋值是没有问题的,像这样: q = xxx;看下关于指针这章的书,你就会明白 ...
C语言:一般来说,字符串指针,不初始化,用户输入赋值时,需要人为分配地址...你说的第一个是什么意思 字符串你可以申请它的大小嘛 比如 char* a = (char*)malloc(sizeof(char)*10)//这里就相当于是 char a[10]
关于C语言指针的问题在例一中,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区是不存在的,或者说是无意义的。 以后,每遇到一个指针,都应该问问:这个指针的类型是什么?指针指向的类型是什么?该指针指向了哪里? 4。 指针本身所占据的内存区。 指针本身占了多大的内存?你只要用函数sizeof(指针的类型)测一下就...
C语言中,定义一个指针的时候为这个指针开辟存储空间吗?int *p :一级指针,表示p所指向的地址里面存放的是一个int类型的值,声明p为指向整型数的指针,这时为这个指针分配了存储空间。但这时其中是随机数,我们称它为指向一个不确定的内存地址。用户说的“直接*p=5”,那么就会在一个无法预知的内存地址写入一个整型数5。这是不允许的,可能导致程序崩溃。
c++指针的问题当然你得假定0xaabb这个地址是一段你可以操作的内存 当然如果你仅仅使用a作为指针变量的话,你可以为它赋任意值,只是你要操作它指向的地址的内容时,才需要保证其指向的位置的内容是有效的。a = new int();也是一种方法,过程是先创建了一个int型的变量,然后把它的地址赋值给a了。