linux下的C编程

linux下的C编程,第1张

#include <stdio.h>

#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哦


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7441728.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存