- Apple iPhone 16 Pro - rutinvizsga
- Samsung Galaxy S25 FE - fenséges, felejthető vagy felesleges?
- Apple iPhone 17 Pro Max – fennsík
- Azonnali navigációs kérdések órája
- Google Pixel topik
- Magyarországon is kapható a Moto G85 5G
- LG G8X - kettőn áll a vásár
- Huawei Watch GT 3 Pro - korlátolt szépség
- iPhone topik
- MIUI / HyperOS topik
Új hozzászólás Aktív témák
-
tototos
addikt
Sziaszto!
Egy érdekes problémával állok szembe. C-ben szeretnék stringeket darabolni. Ez egyenlőre nem tűnik nagy feladatnak, van egy függvényem ami szépen darabolja a dolgokat. A gond ott kezdődik, hogy amikor fel akarok szabadítani a feldarabolt részeknek allokált területet akkor egyszer a free függvény váratlan hibát generál és a mikrovezérlőm elmegy egy végtelen ciklusba.
EZ lenne a daraboló függvény:
char** str_split(char* a_str, const char* a_delim)
{
char** result = 0;
size_t count = 0;
char* tmp = a_str;
char* last_comma = 0;
size_t index;
/* Count how many elements will be extracted. */
while (*tmp)
{
for (index = 0; index < strlen(a_delim); ++index)
{
if (*(a_delim+index) == *tmp)
{
count++;
last_comma = tmp;
}
}
tmp++;
}
/* Add space for trailing token. */
count += last_comma < (a_str + strlen(a_str) - 1);
/* Add space for terminating null string so caller
knows where the list of returned strings ends. */
count++;
result = malloc(sizeof(char*) * count);
if (result)
{
size_t idx = 0;
char* token = strtok(a_str, a_delim);
while (token)
{
assert(idx < count);
*(result + idx++) = strdup(token);
token = strtok(0, a_delim);
}
//assert(idx == count - 1);
*(result + idx) = 0;
}
return result;
}Ez pedig egy része a kódnak:
tokens = str_split(line, ",;");
if (tokens)
{
LINScheduleTable[frameIndex].Frame.SignalIDs_lda16[signalIndex] = atoi(*tokens);
LINScheduleTable[frameIndex].Frame.SignalOffsets_lda8[signalIndex] = atoi(*(tokens+1));
for (i = 0; *(tokens + i); i++)
{
free(*(tokens + i));
}
free(tokens);
}Az érdekesség, hogy ez a részlet meghívódik kb 25-ször, és 26. lépésnél száll el.
Láttok valami hatalmas hibát a kódban?Köszi
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen belső merevlemezt vegyek?
- Apple iPhone 16 Pro - rutinvizsga
- Milyen billentyűzetet vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen alaplapot vegyek?
- Mert itt biztos, hogy megmarad.
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Itt van az ASUS legfrissebb, AMD platformra épülő mini PC-je
- Call of Duty: Black Ops 7
- SSD kibeszélő
- További aktív témák...
- LG V50
- Eladó Lenovo ThinkPad X1 Carbon Gen 8 prémium üzleti ultrabook, WQHD kijelzővel!
- Eladó HP EliteBook 645 G11 új, dobozos, Ryzen 5, DDR5, LTE képes üzleti laptop!
- Eladó ASUS TUF Gaming F15 (FX507ZU4-LP067W) i7, RTX 4050, gamer laptop!
- Eladó HP Envy x360 15-fe0178ng OLED, RTX 3050, i7-1355U, gyakorlatilag új! 3 órát ment eddig
- GYÖNYÖRŰ iPhone 11 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3126, 98% Akkumulátor
- PS Plus előfizetések
- Telefon felvásárlás!! Huawei P20 Lite/Huawei P20/Huawei P30 Lite/Huawei P30/Huawei P30 Pro
- Dell latitude, precision, xps, magyar világítós billentyűzetek eladóak
- HIBÁTLAN iPhone 14 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3240
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest