wie finden Sie die Länge der unsigned char-Zeiger in C?

Will ich finden, die Größe oder Länge eines unsigned char-pointer, die in einer Funktion, wo dieser Zeiger ist ein argument für diese Funktion.In der Nähe des Zeiger-Deklaration Größe kommt richtig.

Aber wenn ich versuche mich zu finden, Größe, Funktion es gibt 4.

Wie kann ich dies tun ?

#include <stdio.h>
//void writeFile(unsigned char *da);
void writeFile(char *da);
int main(int arc,char **argv)
{

 unsigned char block_bmp[]=
{
   0x0,0xff,0xff,0xff,0x0,0x0,0x0,0xff,0xff,0xff,0x0,0x0,0x0,0xff,0xff,0xff,//*16bytes*
};
printf("size::%d\n",sizeof(block_bmp));
writeFile(block_bmp);
}

//void writeFile(unsigned char *da)
void writeFile(char *da)
{
printf("%d\n",__LINE__);
printf("size::%d\n",sizeof(da));
printf("length::%d\n",strlen(da));
FILE *fp;
int i;
fp=fopen("/tmp/hexfile","wb");
for(i=0;i<3780;i++)
    fprintf(fp,"%c",da[i]); 
// fwrite(da,sizeof(unsigned char),sizeof(da),fp);
fclose(fp);
}
Sie sind verwirrend, die Größe der eine Typ, und der Länge string. Wenn Sie möchten, dass die letzteren, verwenden Sie einfach strlen.
können Sie laden Sie Ihr code. Es kann Ihre Frage klar.

InformationsquelleAutor QtUser | 2014-04-03

Schreibe einen Kommentar