cari

Rumah  >  Soal Jawab  >  teks badan

Adakah fungsi spprintf diperlukan untuk RETURN_STRINGL dalam sambungan PHP?

RT, jika saya tetapkan nilai secara langsung kepada rentetan untuk dikeluarkan menggunakan char* dan terus mengeraskan panjang rentetan ke dalam RETURN_STRINGL, hasilnya akan dikeluarkan semasa pelaksanaan, tetapi kemudian "kesalahan pembahagian, teras telah dibuang" akan dilaporkan . Tetapi jika anda menggunakan fungsi spprintf yang disyorkan secara rasmi untuk menetapkan nilai dan mendapatkan panjang, tiada ralat akan dilaporkan.

PS: Dalam kod dalam gambar, jika parameter kedua RETURN_STRINGL ditukar kepada 2, ralat yang sama akan dilaporkan saya menukarnya kepada 3 kerana saya fikir PHP akan memasukkan 0 pada penghujungnya, tetapi selepas mencubanya beberapa kali, saya mendapati bahawa ia tidak sepatutnya menjadi masalah di sini

PHPzPHPz2755 hari yang lalu891

membalas semua(1)saya akan balas

  • 習慣沉默

    習慣沉默2017-06-05 11:09:02

    Rentetan yang dikembalikan oleh RETURN_STRINGL mestilah memori yang diperuntukkan oleh pengurusan memori PHP Ia akan dikeluarkan oleh PHP sendiri selepas spprintf adalah pengurusan memori PHP yang digunakan. Dalam kes ini, anda boleh menetapkan parameter ketiga kepada 1, yang bermaksud bahawa PHP sendiri memperuntukkan memori yang sepadan untuk menyalin rentetan.

    balas
    0
  • Batalbalas