Elemente eines Arrays berechnen

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
SeriK00
Beiträge: 34
Registriert: Fr Mai 15, 2009 12:15 pm

Elemente eines Arrays berechnen

Beitrag von SeriK00 » Fr Jun 19, 2009 8:01 am

Guten morgen,
ich brauche von euch ein Tipp.
Dem array data[128] werden ein Paar Werte zugewiesen.
Nun will ich die Anazhl der zugewiesenen Elemente berechnen.
Meine Lösung funktioniert, aber nicht wenn eine 0 zugewiesen wird.

Vielen Dank im Voraus.

Code: Alles auswählen

#include "stdafx.h"
#include <string.h>

typedef struct
{
	unsigned char data[128];
	unsigned char *pData;
	unsigned short int length;
}SEND_BUF;
SEND_BUF sendBuffer0;

int main ( void )
{
	unsigned short int len=0; 
		sendBuffer0.data[0]= 200;
		sendBuffer0.data[1]= 205;
		sendBuffer0.data[2]= 0;
		sendBuffer0.data[3]= 45;
		sendBuffer0.data[4]= 46;
		sendBuffer0.data[5]= 47;
		sendBuffer0.data[6]= 48;
	
		sendBuffer0.pData = &sendBuffer0.data[0];

	while ( *sendBuffer0.pData )
	{
		sendBuffer0.pData++;
		len++;
	}

	int i ;
	i = len;
	return 0;
}
Windows XP Prof
Visual Studion 2005
Keil µVision 3

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Elemente eines Arrays berechnen

Beitrag von Xin » Fr Jun 19, 2009 8:13 am

SeriK00 hat geschrieben:Guten morgen,
ich brauche von euch ein Tipp.
Dem array data[128] werden ein Paar Werte zugewiesen.
Nun will ich die Anazhl der zugewiesenen Elemente berechnen.
Meine Lösung funktioniert, aber nicht wenn eine 0 zugewiesen wird.
Bei einem String ist das 0-Byte die Endmarkierung. Wenn Du alle möglichen Zeichen als Daten benötigst, dann musst Du das Ende des Strings entweder Escapen oder Dir die Länge des Datensatzes gezielt merken.
Im 2. Fall nimmst Du Dir eine Variable und schreibst da eben die benutzte Länge rein. Fertig.
Im 1. Fall nimmst Du ein Zeichen, zum Beispiel den \. Das Zeichen "flüchtet" aus der normalen Leseroutine und sagt Dir, dass jetzt ein Sonderzeichen kommt. Zum Beispiel \\, was einen \ erzeugt. Oder \0, was vielleicht das Ende-Symbol darstellt. Oder \n, was einen neuen Datensatz beginnt... was immer Du halt brauchst.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten