免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: jjj346
打印 上一主题 下一主题

求返回一个数组的方法 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-10-22 10:04 |只看该作者
听说静态局部变量在多线程环境下会出问题的

多线程是在同一函数调用期内产生,这一函数定义的静态局部变量自然就成了这一调用空间内的全局变量了,各相关线程都可以修改,自然容易出问题。

静态局部变量的操作权限局限于调用函数,这是关键点。

论坛徽章:
0
22 [报告]
发表于 2006-10-22 20:36 |只看该作者
呵呵,多谢了,最近在学操作系统,听说进程跟线程很重要的~~~

论坛徽章:
0
23 [报告]
发表于 2006-10-23 10:47 |只看该作者
原帖由 JohnBull 于 2006-10-20 12:33 发表
[code]
typedef struct int_array_st {
    int *array;
    int size;
} my_int_array_t;

int
a_heap_array(my_int_array_t *a)
{
    a->size=1234;
    a->array=(int*)malloc(sizeof(int)*( ...



受教了

论坛徽章:
0
24 [报告]
发表于 2006-10-23 11:05 |只看该作者

回复 1楼 jjj346 的帖子

返回全局数组还不是返回全局数组首址吗?

论坛徽章:
0
25 [报告]
发表于 2006-10-23 11:25 |只看该作者
struct ArryReturn
{
    void * value;
    int      size;
}
這樣子試驗一下 呵呵

论坛徽章:
0
26 [报告]
发表于 2006-10-24 13:00 |只看该作者
嗯,如果单纯地只是想返回一个数组的话,定义struct 是个有效的方法,同时应该也保证了这个函数的可重入性
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP