В вашем случае вы создаете массив в стеке, и как только вы покинете область действия, массив будет освобожден. Вместо этого создайте динамически выделенный массив и верните указатель на него.
char * returnArray(char *arr, int size) {
char *new_arr = malloc(sizeof(char) * size);
for(int i = 0; i < size; ++i) {
new_arr[i] = arr[i];
}
return new_arr;
}
int main() {
char arr[7]= {1,0,0,0,0,1,1};
char *new_arr = returnArray(arr, 7);
// don't forget to free the memory after you're done with the array
free(new_arr);
}
Из того, что я вижу из документации, API веб-службы Google Places делает не поддержку JSONP - только JSON. Ошибка, которую вы видите, заключается в том, что ответ - это просто JSON, но анализируется, как если бы это был JSONP, и это вызывает ошибку.
Проверьте API JavaScript Карт Google - он включает в себя библиотеку мест, которую вы может быть в состоянии использовать - см. google.maps.places.PlacesServices#search()
.
AFAIK, похоже, сдвиг в сторону удаления поддержки JSONP - например, API геокодирования, используемый для поддержки JSONP (недокументированный) в v2, но уже не в v3. Кто-то предположил, что это может быть для того, чтобы побудить разработчиков использовать JavaScript API.
Ниже приведено не прямое решение. Но, вот как я начал работать ...
Поскольку JSONP не поддерживается (и я не понимал, как клиентский код должен использовать этот API в любом случае), решение должно проксировать его через ваш сервер ... Если вы используете рельсы на стороне сервера, ниже может работать для вас:
class PlacesController < ApplicationController
def autocomplete
# Using Google Web Services
# https://code.google.com/apis/console
url = "https://maps.googleapis.com/maps/api/place/autocomplete/json"
_params = {
:key => "<<< YOUR KEY >>>",
:types => "geocode",
:sensor => (params[:sensor] or false),
:input => params[:q]
}
ans = %x{curl -G --data-urlencode #{_params.map{|k,v| "#{k}=\"#{v}\""}.join(" --data-urlencode ")} "#{url}"}
ans = ActiveSupport::JSON.decode(ans)
render :json => ans
end
end
PS: Чтобы сгенерировать ключ API, используйте https: // код .google.com / APIs / консоль