如何计算指向数组的指针所含元素多少

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 09:05:57
如何计算指向数组的指针所含元素多少

如何计算指向数组的指针所含元素多少
如何计算指向数组的指针所含元素多少

如何计算指向数组的指针所含元素多少
ù笮?字节),后者求的是指针指向的一个元素的大小(如果p指向int数组,就是4字节,类似指向char数组就是1字节).
终于找到解决方法了,函数传入指针,那么在调用该函数时,肯定会指定buffer大小的,我们可以把buffer的大小作为该函数的一个参数,这样,我们就可以采用sprintf_s了.
同时,考虑到不同平台兼容问题(VC6.0 VS2005)的问题,我们可以将sprintf与sprintf_s封装成自己的函数,例如取名为yg_sprintf_s(呵呵),在内部我们判断编译器的版本_MSC_VER = 1400,使用的时VC8.0即VS2005.sprintf_s内部实际上是利用vsprintf_s和vsnprintf_s(根据目的buffer长度截断,不会造成系统崩溃)来实现的,对于format...这样的参数是利用vslist() vs_start() vs_end()函数来进行处理的.
附:csdn上存在类似的讨论内容:(1)int *p,*q;
如果是的话,下面这个方法就可以帮你了
p - q 就能知道你现在已经向前移了多少个元素,再把a减去向前移的元素不就出来了
示例程序如下
#include <malloc.h
#include <stdio.h
int main(int argc,char* argv[]){int a = 10;
int *p,*q;
p = q = (int *)malloc(a * sizeof(int));
p = p + 3;
printf( "%d ",a - (p - q));free(q);return 0;}(2)在c中总是要自己记录指针中内存的大小.
比如你使用:
p=(int*)malloc(a*sizeof(int)),
那么使用一个全局变量记录a不久可以了.
如果要产生很多这样的数组,使用全局变量不方便,可以采用一个变通的方法,比如:
p=(int *)malloc( (a+1)*sizeof(int));*p=a;p++;那么以后使用指针时,*(p-1)就表示这块内存的大小.

如何计算指向数组的指针所含元素多少 如果指针指向一个数组,如何随机访问其指向的数组元素?说具体点 “指针的类型是指向数组元素的指针”如何理解?徐惠民主编的《C++大学基础教程》第6章指针与引用p136有这么一句话:“指针的类型是指向数组元素的指针.数组名也是数组第一个元素的地址 如何定义一个函数 返回一个指向数组的指针 指向数组的指针和指向数组的元素的指针有何区别?数组名和指针变量名有何区别? 利用指向行的指针变量求5×3数组各行元素之和 定义一个指针变量,使它指向数组的第一个元素?怎么实现? C语言中若定义数组和指向数组的指针,其中元素的地址可用哪几种方式表达? 若有定义int(*p)[3]; 则定义了一个名为p的指针变量 它可以指向每行有三个整数元素的二维数组请问如何理解这句话和此定义 为什么是二维数组? 如何定义指向函数的指针?如何定义一个指向函数的指针?如何通过指向函数的指针来计算函数值? 关于指针变量的问题首先定义数组int a[3];如果把a赋给一个指针变量p,那么p该如何定义?我觉得a是指向行的,而&a[0]才是指向元素的.所以不能把a赋给定义为int*p的指针变量p,而是赋给同样指向行 指向函数的指针与指向数组的指针的声明定义的写法 C 写一个函数,接收三个长度相等的浮点型数组,将前两个数组的对应元素加在一起放入第三个数组对应元素中,函数的返回值指向第三个数组的指针.本人小白, 编写程序,在主函数中定义含有12个指针的指针数组,使它的12个元素分别指向由月份组 C语言 当两个指针指向同一个数组中的元素时,p-q的物理意义是:指针p和q所指对象之间元素的数量C语言 当两个指针指向同一个数组中的元素时,p-q的物理意义是:指针p和q所指对象之间元素的 7)C语句:int (* pa)[5]; 中,pa 表示的是一个( )A.指针数组的名称B.指向整型变量的指针C.指向包含5个整形元素的一维数组的指针D.指向函数的指针 如果指针p指向一个有10个元素的数组a的最后一个元素,则p-a的值是 栈中元素个数问题假设一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有______