关于指针数组问题(求长度,急………………)

shuiniaoqingren 2006-06-28 07:35:01
小弟有个问题,请各位高手指教。

int *c[] = {a, b};

a,b是两个int型的数组,请问怎么才能把数组a中的值全取出来并求出数组a的长度。
...全文
405 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
al0n9 2006-08-03
  • 打赏
  • 举报
回复
如果a和b都是整型数组而不是整型指针,那么a数组中的元素个数=sizeof(a)/sizeof(a[0]),a占用的内存大小为sizeof(a)。
xiantongyuan 2006-08-03
  • 打赏
  • 举报
回复
a,b首先得是数组名,而不能是指针,满足以上要求可以按如下方法算:
int i;
i=sizeof(a)/sizeof(int);
其中i为数组的元素个数;
zizit 2006-08-02
  • 打赏
  • 举报
回复
a,b是两个指向"int型的数组"的指针;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
不对吧,a,b肯定是数组,不然不可以这样初始化数组的
我觉得一楼的答案是正确的
SenerityChzr 2006-08-02
  • 打赏
  • 举报
回复

jixingzhong(瞌睡虫:选择了远方,只顾风雨兼程!) ( )


对于数组,
必须要有一个 长度 参数!

或者有一个特殊数组结束符号用于判断数组是否结束,
否则无法操作 ...


___________________________________________________

严重同意!!!!!!!!!!!!!
jixingzhong 2006-08-01
  • 打赏
  • 举报
回复
对于数组,
必须要有一个 长度 参数!

或者有一个特殊数组结束符号用于判断数组是否结束,
否则无法操作 ...
kuusr 2006-08-01
  • 打赏
  • 举报
回复
BYTE CodeLen(BYTE const *Str)
{
BYTE Count=0;

while((*Str++)!='\0') ++Count;

return (Count);
}
triace_zhang 2006-06-28
  • 打赏
  • 举报
回复
不行,因为a+1是一个临时变量,临时变量没有保存内存段信息。所以用_msize( a + 1)不行
同理int *q = a + 1;把临时变量初始化或者赋值给一个指针,该指针变量在变量表里也没有保存正确的内存段信息。
tailzhou 2006-06-28
  • 打赏
  • 举报
回复
triace_zhang(『雪梨码头』) 讨教一下:
假如定义如下.
int *a=malloc(sizeof(int)*6);
int *b=malloc(sizeof(int)*6);
int *c[] = {a+1, b+1};

这样的话,能求出 size_t size = _msize( a+1 );来么?
triace_zhang 2006-06-28
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <malloc.h>

int main()
{
int *p = (int*)malloc( 5 * sizeof(int));
size_t size = _msize( p );
printf("%d\n",size);

getchar();
return 1;
}
是c
triace_zhang 2006-06-28
  • 打赏
  • 举报
回复
如果a,b是堆里动态分配的内存段,可以用_msize

#include <stdio.h>
#include <malloc.h>

int main()
{
int *p = new int[5];
size_t size = _msize( p );
printf("%d\n",size);

getchar();
return 1;
}

如果是栈里分配的目前还没什么方法。
tailzhou 2006-06-28
  • 打赏
  • 举报
回复
int *c[] = {a, b};
a,b是两个int型的数组,请问怎么才能把数组a中的值全取出来并求出数组a的长度。


a,b是两个指向"int型的数组"的指针;没其他辅助信息,是不可能"把数组a中的值全取出来并求出数组a的长度"的
shuiniaoqingren 2006-06-28
  • 打赏
  • 举报
回复
这样是不对的,求得不对,楼上的可以试一下。
zez 2006-06-28
  • 打赏
  • 举报
回复
a的长度 = sizeof(c[0])/sizeof(int) ;
b 依次类推

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧