易截截图软件、单文件、免安装、纯绿色、仅160KB

c 字符指针 char **是否需要分配内存 - C/C++ / C语言

接收键盘输入n个最大长度100的字符串

  char ** p, *tmp;
  int i,n;

  clrscr();
  scanf("%d",&n);
  getchar();/*清缓存*/

  for(i=0;i<n;i++)
  gets(*(p+i));

定义了p后,没有调用malloc分配内存,也没有影响程序运行。


我想问,这样用可以么?会不会把内存写坏?或者有内存泄漏等其他问题?
要分配内存不要靠人品。你这次没问题,不保证你下次还有这么好运气。



p没有指向合法内存,是一个野指针,对野指针操作,破坏了内存,后果比较严重,可能会崩溃,可能是极其隐藏的BUG。

不需要给它本身分配内存,但是它指向的应该是已经分配好的内存

引用
接收键盘输入n个最大长度100的字符串

char ** p, *tmp;
int i,n;

clrscr();
scanf("%d",&amp;n);
getchar();/*清缓存*/

for(i=0;i<n;i++)
gets(*(p+i));

定义了p后,没有调用malloc分配内存,也没有影响程序运行。


我想问,这样用可……

楼主用的是tc吧,我刚开始用它的时候也没注意过给指针分配内存方面的东西。后经过别人的指导才改过来。
确实在tc下不会报错,你拷贝到vs下就会出问题了.

野指针是很恐怖

可是我改怎么分呢?

p=(char *)malloc(100*n*sizeof(char));

是这样分么?

引用
可是我改怎么分呢?

p=(char *)malloc(100*n*sizeof(char));

是这样分么?


相关问答:

execl怎么调用java程序 - C/C++ / C语言

如题,C/C++中的execl怎么调用写好的java程序,
execl("/opt/java1.5/bin/java","MyClass",NULL);
这样的不行哦。

不会.

运行java程序
找工具查看一下那个程序的命令行

搜索下:jni ......

求教c/c++语言相关问题 - C/C++ / C语言

有一10*10矩阵,除去第一个点(0,0)和最后一点(9,9),还有八个点为1,其他都为0,要求用二维数组表示。八个点是随机生成的,编写相关程序表示矩阵所有可能情况。
真心求教各位高手,哎!本人太菜了!呵呵!
......

c静态编译另一个文件夹的库函数 - C/C++ / C语言

在根目录/lib中存放一个log.c,log.h,并用下面的语句:
gcc -c log.c
ar crv liblog.a log.o
编译出一个liblog.a静态库,然后在文件夹:/testfile中创建一个test.c和testc.c,test.c中引用了testc.c中定义的方法 ......

求助:C代码改写成VB代码 - VB / 基础类

谁能帮我把下面这些代码改成VB形式的,多谢了,急用~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[],float g ......

c 语言里浮点相乘 为什么小数全为0了 - C/C++ / C语言

如题:c 语言里浮点相乘 为什么小数全为0了
float x=8266.206055;
float y=7226.922363;
float z;
z=x*y;
z=59739228.000000;
为什么得到的Z 小数点后面全为0了
呵呵,超出浮点能表示范围了。

麻烦有人知道 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号