4
#[link(name = "jack")]
extern "C" {
pub fn jack_client_open(name: *const libc::c_char,
options: JackOptions,
status: &JackStatus)
-> *mut JackClientT;
}
를 사용하여 녹에서
jack_client_t* jack_client_open ( const char * client_name,
jack_options_t options,
jack_status_t * status,
...)
를 호출하는 문제에 실행을 녹으로부터 JACK-AUDIO-연결-KIT (documentation)를 사용하려고 나누기
나는 그것이 작동하는 name
네와 문자 등을 사용
let name = CString::new("yass").unwrap().as_ptr();
하지만 5 문자 이상 사용하면 작동하지 않습니다. 위에 링크 된 JACK 문서에서, 그 이름은 대부분 int jack_client_name_size()
자 길이라고 할 수 있는데, 이는 내 경우 64입니다. 왜 이런 일이 생길까요?
지금은 의미가 있습니다. 문서의 경고는 좋습니다. RFC 제안서에서 나와 같은 많은 초보자들이이 문제로 어려움을 겪고있는 것으로 보입니다. 원시 포인터가 "* _ptr"로 끝나지 않을 경우 사용자에게 원시 포인터에 대한 명명 규칙을 사용하도록 "권장"하는 것이 맞습니까? 어쩌면 장기적으로 올바른 메모리 관리와 관련된 주의력이 증가 할 것이며, 사람들이 잘못된 것이 있으면 컴파일러에 의존하지 말아야 할 것입니다. 보다 많은 선진 사람들이 경고를 해제 할 수 있습니다. – poidl