Aşağıdaki kod, iki dizede ortak karakteri bulur ve varsa ortak dizeye bir işaretçi döndürür. Strpbrk işlevini yerleşik işlevler veya aboneler kullanmadan taklit etmeye çalışıyorum.Dizede genel karakterleri arama ve işaretçiyi ortak karaktere döndürme (strpbrk kullanmadan)
#include <stdio.h>
#include <stdlib.h>
char *find_char(char const *source, char const *chars){
char* str1;
char* str2;
if (source == NULL || chars == NULL)
return NULL;
else {
for(*str1=&source != '\0'; ++str1;){
for(*str2=&chars != '\0'; ++str2;){
if (*str1 == *str2)
return str1;
else return NULL;}
}
}
}
char* main(){
char const *source = "ab";
char const *chars = "bc";
find_char(source, chars);
}
Ama Koşu aşağıdaki hatayı
alıyorum "/home/ubuntu/workspace/hello-c-world.c"
bash: satır 12: 29.755 Segmentasyon hatası "$ file.o"
Süreç koduyla çıkıldı $ args: 139
Ben C'de bir acemi ve işaretçileri işlemek için öğrenme, bana yanlış yapıyorum bildirin ve ben nasıl güçlendirebileceğinizi lütfen benim C programlama becerileri, şu anda çoğunlukla Kenneth Reek kitabını "C İşaretçiler"
Teşekkür
Sana kaçak işaretçi sorunlarını açıklayabilir char * –