Alle Ihre Probleme durch Verschleierung verursacht werden - versuchen, einen einfachen Algorithmus zu schreiben, so weit wie möglich (schlechte Programmierung) kompliziert. Dies verursacht nicht nur die erwähnten Fehler, sondern verringert auch die Lesbarkeit und Leistung.
Haben Sie den einfachen Algorithmus so einfach wie möglich (gute Programmierung) zu schreiben versuchen, es gibt keine Probleme gewesen wäre, und der Code würde auch schneller ausführen:
#include <stdio.h>
#include <limits.h>
int main (void)
{
const char* str="Hello";
char least = CHAR_MAX;
for(size_t i=0; str[i] != '\0'; i++)
{
if(str[i] < least)
{
least = str[i];
}
}
printf("%c = %d", least, least);
}
'* ptr' ist' '\ 0 "". (in der letzten Zeichenfolge) – BLUEPIXY
Mögliches Duplikat von [Does \ * p ++ nach Dereferenzierung erhöhen?] (http://StackOverflow.com/questions/9255147/does-p-increment-after-dereferencing) –