请教如何求一个动态数组的长度

xishanlang2001 2005-07-06 08:14:38
int *a = (int*)malloc( 10 * sizeof( int ) ) ;
printf("%d\n",sizeof(a));
得到4,而不是40.
请问该怎么处理呀?

在线等,急!
...全文
260 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dch4890164 2005-07-07
  • 打赏
  • 举报
回复
呵呵,同意楼上的观点
!!!
ningzhiyu 2005-07-07
  • 打赏
  • 举报
回复
mark
herryhuang 2005-07-06
  • 打赏
  • 举报
回复
你自己申请的内存,怎么会不知道它的大小呢?
du51 2005-07-06
  • 打赏
  • 举报
回复
你把大小传进来不就行了.
楼上的方法还算可行.
不过_msize只能对使用malloc或calloc申请的内存进行大小测定,其它方法就会崩溃.
foochow 2005-07-06
  • 打赏
  • 举报
回复
#include<iostream>
#include<malloc.h>
using namespace std;
int main()
{
int*a =(int*)malloc(10*sizeof(int));
size_t size=_msize(a);
cout<<size<<endl;
return 0;
}
FBIq 2005-07-06
  • 打赏
  • 举报
回复
printf("%d\n",sizeof(a));因为a==a[0]而整形在32位机所以得到4。你要乘以元素个数才行!
七号信令分析软件 2.0 一.实现功能及解决问题 1.增加对ISUP消息的分析统计功能; 2.解决DISMSU执行出现非法操作的错误,主要是对ISUP的INF消息和TUP的GSM消息处理有误; 3.解决打开扩展名为大写的“TXT”当作二进制文件分析的错误; 4.更新用户手册,主要增加ISUP消息中的失败原因值的列表 5.解决七号信令分析软件判断跟踪消息的信令点编码为24位还是14位的问题,估计跟踪消息中的一个标志位判断。不需要用户配置。 6.增加打印功能; 7.统计结果的排序问题,可以按数字排序; 8.解决通过滚动条无法看到最后一条记录的问题; 9.主被叫号码长度超过29位导致“内部不正确”提示的问题。 10.可以对旧格式的信令文件进行处理后,用此软件进行分析。 具体使用方法见“UserMannua20.lwp”或从程序组中打开“用户手册”。 二.目前已经存在的问题,但难以解决的有: 1.相关信令的查询 当点击某个呼叫时,在出现相关的信令消息之前会有短时间的白屏现象。这是因为程序调用了一个DISMSU.EXE文件产生包含信令消息的文件。但是因为执行之间的同步问题,如果调用DISMSU.EXE结束后立刻打开信令消息文件显示,往往打开的是上一次的结果。所以在显示之前SLEEP 2秒钟。请教过UI的高手,通过在某一个文件中设置标志位来充当信号量,但在实现中发现仍然是老问题。 2.统计速度 对信令消息的统计速度比较慢,可能要忍受一下。我测试用的文件比较小,执行起来还比较快。主要原因可能在于以前的版本只支持TUP消息统计,消息参数都比较少,所以数组开了100个字节的空间。考虑到ISUP消息最长为272个,但转换为文本的字符表示,还要加空格,基本上是3倍的关系。所以目前的消息长度定位600。这样内存和写文件操作时间都会比较长。 3.不能统计自环消息 目前七号信令分析软件不支持对自环消息的统计,或者说自环统计中认为是成功的呼叫,在用此软件分析后会认为没有后向的应答消息而设置状态为不成功。 三.安装路径 setup目录下存放的是七号信令分析软件 2.0版本的安装盘。

70,018

社区成员

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

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