程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-如何在C語言中以數組指針作為形參輸出數組

c語言-如何在C語言中以數組指針作為形參輸出數組

編輯:編程綜合問答
如何在C語言中以數組指針作為形參輸出數組

#include "stdafx.h"
void cmdsend(unsigned int * info);
int main()
{

unsigned int senddata[5];
senddata[0] = 8;
senddata[1] = 2;
senddata[2] = 0;
senddata[3] = 4;
senddata[4] = 5;
cmdsend( senddata );

while(1){;}

}

void cmdsend(unsigned int * info)
{
unsigned int k;
for (k = 0; ((*info) != '\0') && (info != NULL); *info++, k++)
printf("senddata is %d\r\n", *info);
}
如上面程序所示,我想將數組sendata完整的輸出,現在只能打印出8,2.即在sendata[2]處結束,好像判斷為 info == NULL了,請問應該怎樣修改,才能輸出完整數組?在使用 *info 指針作為形參的前提下。

最佳回答:


上面的已經分析了原因,中間斷斷條件有問題,指針越界以後可能不會為null,這時你的判斷條件不會終止,所以繼續向下執行,導致不確定的後果,最好采用如下形式比較安全:
void cmdsend(unsigned int * info, int len)
{
unsigned int k;
for (k = 0; k < len, k++)
printf("senddata is %d\r\n", *(info+k));
}
其中len代表數據的長度

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved