내 Swift 코드에서 나는 char**
결과를 반환하는 C 메소드를 호출합니다. 어떻게하면 억지로 응급 처치 할 수 있습니까? [String]
을 처리 할 수 있습니까?액세스 char ** 결과 from Swift
답변
감사합니다 ;-) 내가 관리 행운 그것이
let c1 = String.fromCString(row.memory)
let c2 = String.fromCString(row.advancedBy(1).memory)
row
작업을 얻을 처리 할 수있는 방법의 예입니다 실제로 내 char**
배열입니다. C에서 가져 왔습니다. 사실 MySQL과 통신하기 때문에 MYSQL_ROW입니다.
NUL 종료 UTF-8 문자열이 있다고 가정합니다. 나는 MySQL 전문가가 아니지만, 문서에 따르면 MYSQL_ROW에는 계산 된 바이트 배열에 대한 포인터가 들어 있습니다. 이것들은 필연적으로 NUL로 종료됩니까? –
예제로 시도해 보았습니다. IF (와 나는 추측한다) MySQL 녀석은 좋은 일을했다. 그 문자열은 다른 것 이외에 NUL- 종료되어야한다. 이것이 내가 강력한 프로그래밍이라고 부르는 것입니다. –
char **
을 처리하려는 경우 포인터에 대한 포인터를 처리하고 있음을 의미합니다. Sourav Ghosh가 말했듯이 C 언어에는 문자열 데이터 유형이 올바르지 않습니다. 대신 문자에 대한 포인터 또는 char *
을 선언해야합니다. 단일 문자 (1 바이트) 또는 그 배열을 가질 수있는 메모리 주소를 가리키고 있음을 의미합니다. 여기
char *myString;
myString = &swift();
printf("My string is %s", myString);
신속한 답변을
나는 Swift를 모른다. 그러나 OP의 질문은 그가 C _from_ Swift를 호출하고 있으며, 포함하고있는'char ** '를'[[String]]'으로 강요하기를 원한다고 말한다. – TripeHound
TripeHound가 맞습니다. 너는 그 길을 잘못 잡았다. –
나는 그것을 얻었습니다 @ ThomasKilian, 실수로 미안합니다 – rfermi
- 1. NSDate from Swift
- 2. Xib from Swift 3
- 3. C++ enum from char
- 4. Pop (char &) fcn from char of
- 5. paramErr -50 from AudioUnitRender swift
- 6. @ char from kannel을 보내기위한 버그
- 7. 잘못된 결과 from z3
- 8. C char ** 결과 얻기
- 9. Swift 3 - 코어 데이터 - 가져온 결과 컨트롤러 액세스 관계 속성
- 10. C/C++ casting 문제, unsigned char from char
- 11. XMLGregorianCalendar from String 오류 결과
- 12. Swift : 내부에서 결과 반환하기 dispatch_async
- 13. Swift : SwiftyJson의 결과 테이블 만들기
- 14. char 포인터 배열에있는 char 시퀀스에 액세스
- 15. iOS 9 Swift Segue from TextField
- 16. Java ArrayindexOutofBoundsException from char to int
- 17. atoi from char * C에서 0을 반환합니다.
- 18. APLX Char vector from Integer Vector
- 19. QImage from unsigned char buffer (jpg 형식)
- 20. boost :: lexical_cast from string to char 예외
- 21. GCC 4.9 std :: string from const char *
- 22. DLL import char * pointer from C#
- 23. 액세스 결과
- 24. sqlite3_get_table에서 결과 배열에 액세스
- 25. 액세스 쿼리 없음 결과
- 26. FROM 절의 구문 오류 액세스
- 27. 액세스 O_RDONLY, O_WRONLY, ... from nodejs
- 28. 액세스 편석함 : user_id from Angular?
- 29. Swift : 다른 클래스의 변수에 액세스
- 30. Swift 3의 코드 액세스 오류
일반적으로 C에서 ** null로 끝나는 **'char *'변수는 _string_을 나타낼 수 있습니다. 조금 자세하게 설명해 줄 수 있니? 힌트 :'char ** p'와'* p [i]' –
'char **'를'[String]'으로 변환하는 것이 더 합리적 일 것입니다. 그러나 더 많은 정보가 필요합니다. 각'char *'는 0으로 끝나는가? 'char **'는 NULL로 끝나는가? 누가 메모리를 할당하고 누가 메모리를 해제 할 책임이 있습니까? 문자열이 일정합니까 또는 Swift에서 문자열을 수정 하시겠습니까? –
@ Martin R : 물론 [String]입니다. 나는 그 문제를 바로 잡았다. 내 대답도 참조하십시오. –