#include <malloc.h>
#include <string.h>
char *memory, *b
void ShareMemory( char func, char *data )
{
switch( func )
{
case 'c':
memory = ( char * )malloc( sizeof( char ) * 64 )
break
case 'r':
printf( "%s", memory )
break
case 'w':
strcpy( memory, data )
break
case 'd':
free( memory )
break
default:
printf("wrong input!")
}
}
void main(int argc,char **argv)
{
ShareMemory( *argv[1], argv[2] )
ShareMemory( *argv[3], argv[4] )
ShareMemory( *argv[5], argv[6] )
}
提供个思路,这个程序只能在一次运行中解决问题,比如程序名是oo输入oo c a w hello r a就可以输出hello,至于怎么使用上次运行建立的内存我也不知道。
变量定义的时候出错了,RECORDrec RECORD和rec中间要加一个空格,从错误信息里你也可以很容易找到原因的,跟错错误提示,很容易定位到问题的地方,
不要被英文吓到,其实没什么的
(gdb) p gr->gr_name$19 = 0x4dbffff4 <Address 0x4dbffff4 out of bounds>
我试了一下 由于第2此循环得到的指针不对
把这句话去掉就没问题了
//printf("%-10s",gr->gr_name)
所以你看看你上面的 gr=getgrgid(IFo.st_gid)函数调用是不是有问题
比较忙 没仔细给你调试
你要多用gdb哦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)