#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main(int argc,char *argv[])
{
char **bb;
char *pbuf;
int i,t;
bb = (char**)malloc(argc);
for(i=0;i<argc;++i)
{
t = strlen(argv[i]);
pbuf = (char*)malloc(t + 1);
strcpy(pbuf,argv[i]);
*(bb + i) = pbuf;
}
for(i=0;i<argc;++i)
{
printf("%s\n",*(bb + i));
free(*(bb + i));
}
if (bb !=NULL)
free(bb); ////这里出错,why?
}
编译器:vs.net
#include <stdlib.h>
#include <string.h>
main(int argc,char *argv[])
{
char **bb;
char *pbuf;
int i,t;
bb = (char**)malloc(argc);
for(i=0;i<argc;++i)
{
t = strlen(argv[i]);
pbuf = (char*)malloc(t + 1);
strcpy(pbuf,argv[i]);
*(bb + i) = pbuf;
}
for(i=0;i<argc;++i)
{
printf("%s\n",*(bb + i));
free(*(bb + i));
}
if (bb !=NULL)
free(bb); ////这里出错,why?
}
编译器:vs.net
解决方案 »
- MSLLHOOKSTRUCT结构的问题
- VARIANT*如何转换为LPCTSTR?
- Windows是怎样把所要打印的内容送入DC中,GDI怎样绘制的?
- 形势逼人?com确实是一个非常了不起的技术,但如果靠com来找工作也非易事~~~
- 问一个Mutex和closeHandle的问题
- 关于改变颜色的问题~!◎!
- 高手请指教:怎样在窗口中添加图片?
- 请问在VC中如何查询注册表中是否有某一个值?
- 有关在dll中进程共享变量的问题
- 初学者的一个简单问题:如何取得EDIT BOX填写的东西?
- 各位,谁要SMTP/POP3的类库,还后全部的原代码(支持完全的MIME规范)
- 怎么用VC里的控件显示外部的一幅 .jpg 或者 .bmp图象具体实现?
前面已经free过了。
-->
bb = (char**)malloc(argc*sizeof(char*));
bb = (char**)malloc(argc);
-->
bb = (char**)malloc(argc*sizeof(char*));
如argc==1,bb只得到一个字节,天知道为什么 *(bb+i)=pbuf; 为什么不出错,要等到free(bb)才报错。