0
爲EXP:此程序無法正常工作時我.. 誰能explian我如何使用正確的方式在這個程序指針,使用功能 節目讓我運行時錯誤如何使用指針函數?
程序應該是通用和返回任何給定的陣列
#include<stdio.h>
#include<string.h>
int ReturnSize_INT(void *a)
{
a = (int*)a;
int count = 0 ;
int *p = (int*)a;
while(p != NULL)
{
count++;
p++;
}
return count;
}
int ReturnSize_char(void *a)
{
a = (char*)a;
int count = 0 ;
char *p = (char*)a;
while(p != NULL)
{
count++;
p++;
}
return count;
}
int ReturnSize_float(void *a)
{
a = (int*)a;
int count = 0 ;
float *p = (float*)a;
while(p != NULL)
{
count++;
p++;
}
return count;
}
int main()
{
int a [] = {1,2,5,7,8};
char b[]={'a','b','c','\0'};
float c [] = {2.75,5.25,7.27,4.25};
int (*ReturnSize)(void *e);
ReturnSize = ReturnSize_INT;
printf("%d",ReturnSize(&a));
return 0;
}
出了什麼問題?編譯錯誤?運行時問題? – doctorlove
'a =(int *)a;' - 什麼?爲什麼? 'while(p!= NULL)' - 'p'永遠不會是'NULL',除非它溢出......你甚至用這個代碼做什麼? – 2014-01-30 13:47:16
a =(int *)a - 假設將a轉換爲int *指針no? – user3253375