char change_to_words(char arr[], int wordsize) { int m, ky, yk; int whiccha = rand() % wordsize; for (m = 0; m < whiccha; m++) { ky = rand() % wordsize; yk = rand() % CHANGE; if (arr[ky] + yk <= MAX) { arr[ky] = arr[ky] + yk; } else { arr[ky] = arr[ky]; } } return arr; }
change=10 max=90 Kod yukarıda gönderilen bir stringin harflerini rastgele seçip 0-10 arasında değerler ekleyip return etmem gerek ama şu hatayı veriyor. [Warning] return makes integer from pointer without a cast
0-10 arasında değerler ekleme nedenim harfleri değiştirmek
hatada return ettiğin değer bir pointer ama integera atamaya çalışıyorsun diyor sanırım. ama sen char* change_to_words yapmayı dene.
C'de dizilere özel bir istisna var fonksiyon parametre olarak değer yerine başlangıç adresini alır yani fonksiyon icinde yaptığın herşey global dizini etkiler eğer niyetin bu ise return yapmana gerek yok değer olarak işleyip return yapacaksan parametrede const belirtmeli ve fonksiyon içinde geçici dizi ile işlem yapmak gerekiyor.